/**
 * 用来缓存客户端需要用到的所有数据信息
 */
function ClientData() {
};

ClientData.instance = ClientData;

/**
 * 默认图片回显路径
 */
ClientData.imgUrlPath	= "resource/upload/";

/**
 * 系统编码数据
 */
ClientData.sysCodeData = [];

/**
 * 用户信息数据
 */
ClientData.userInfoData = [];

ClientData.allFunNodeData = [];

ClientData.userFunNodeData	= [];

//0表示功能模块，1表示功能节点
ClientData.funType = [ {
	id: 0,
	name: '功能模块'
}, {
	id: 1,
	name: '功能节点'
}, {
	id: 2,
	name: '功能按钮'
}, {
	id: 9,
	name: '分隔条'
}, {
	id: 99,
	name: '隐藏'
}  ];

ClientData.funTypeObj = {
	0: '功能模块',
	1: '功能节点',
	2: '功能按钮',
	9:'分隔条',
	99:'隐藏'
};

/**
 * 初始化
 * @return
 */
ClientData.initalize = function() {
	ClientData.initCodeNode();
	ClientData.initUserInfo();
	ClientData.initAllFunNode();
};

/**
 * 初始化所有功能节点表
 * @return
 */
ClientData.initAllFunNode = function() {
	$.ajax( {
		type: 'POST',
		dataType: 'json',
		url: __root + "/funNodeController",
		data: {
			method: "find"
		},
		success: function(json) {
			/* 设置图标 */
			//XMPanel.setFunIcon(json);
			ClientData.allFunNodeData = json;
		}
	});
};

/**
 * 初始化用户具有权限的功能模块数据
 * @return
 */
ClientData.initUserFunNode = function(callBack) {
	$.ajax( {
		type: 'POST',
		dataType: 'json',
		url: __root + "/funNodeController",
		data: {
			method: "findUserFunNode"
		},
		success: function(json) {
			if(!json || !json.length || json.length<1){
				LoginHandler.logout(false);
				return;
			}
			/* 设置图标 */
			MiniuiTools.findTreeNode("##", json, function(node) {
				node.iconCls = node.funIcon;
			});
			ClientData.userFunNodeData = json;
			if(!!callBack) callBack(json);
		},
		error: function(e, etxt) {
			alert("加载遇到错误："+etxt);
			LoginHandler.logout(false);
		}
	});
};

/**
 * 从缓存中找用户信息
 * @param userId
 * @return
 */
ClientData.findUser = function(userId) {
	if (ClientData.userInfoData) {
		for ( var i = 0; i < ClientData.userInfoData.length; i++) {
			if (ClientData.userInfoData[i].userId == userId) {
				return ClientData.userInfoData[i];
			}
		}
	}
	return;
};

/**
 * 初始化用户信息
 * @return
 */
ClientData.initUserInfo = function() {
	$.ajax( {
		type: 'POST',
		dataType: 'json',
		url: __root + '/userController',
		cache: false,
		data: {
			method: "findAll"
		},
		success: function(json) {
			if (json) {
				ClientData.userInfoData = json;
			}
			return;
		},
		error: function(obj, ertxt) { 
			/* 失败回调函数.这里是网络失败, 比如500错误等 */
			alert("初始化数据错误：" + ertxt);
		}
	});
};

/**
 * 初始化编码表信息
 * @return
 */
ClientData.initCodeNode = function() {
	$.ajax( {
		type: 'POST',
		dataType: 'json',
		url:__root + '/codeController',
		cache: false,
		data: {
			method: "find"
		},
		success: function(json) {
			if (json) {
				ClientData.sysCodeData = json;
			}
			return;
		},
		error: function(obj, ertxt) { 
			/* 失败回调函数.这里是网络失败, 比如500错误等 */
			alert("初始化数据错误：" + ertxt);
		}
	});
};